﻿<?php
//header('Content-Type:application/json; charset=utf-8');

include_once '../util.php';

$upfile=$_FILES["file"];
$usid=$_REQUEST['usid'];
$ssid=$_REQUEST['ssid'];
$duration = $_REQUEST['duration'];

if ($upfile["error"] > 0){
    echo json_encode(array(
        'stats'=>0,
        'msg'=>$upfile["error"]
    ));
    return;
}
if(empty($usid) || empty($ssid)){
    echo json_encode(array(
        'stats'=>0,
        'msg'=>'缺失身份信息'
    ));
    return;
}

// 通过 usid,ssid 验证用户身份
$bool=verifiedIdentityInfo($usid,$ssid);
if(!$bool){
    echo json_encode(array(
        'stats'=>0,
        'msg'=>"无法验证身份",
        'usid'=>$usid,
        'ssid'=>$ssid
    ));
    return;
}

// download 目录下是否存在silks、mp3s文件夹，如果没有则创建它，并在新建的文件夹内创建以当天日期为名的文件夹
$timeDir=date("Ymd");
$silkPath='../download/silks';
$mp3Path='../download/mp3s';
if(!file_exists($silkPath)){
    mkdir($silkPath,0777);
}
if(!file_exists($silkPath.'/'.$timeDir)){
    mkdir($silkPath.'/'.$timeDir,0777);
}
if(!file_exists($mp3Path)){
    mkdir($mp3Path,0777);
}
if(!file_exists($mp3Path.'/'.$timeDir)){
    mkdir($mp3Path.'/'.$timeDir,0777);
}

// 如果对应的目录不存在该文件则文件上传，否则返回错误信息
$fname=str_replace(".silk","",$upfile["name"]);
$bool=move_uploaded_file($upfile["tmp_name"], $silkPath.'/'.$timeDir .'/' . $upfile["name"]);
if(!$bool){
    echo json_encode(array(
        'stats'=>0,
        'msg'=>"上传失败"
    ));
    return;
}
// 将silk格式转成mp3格式
$command='C:\xampp\htdocs\wxRecordServer\silk2mp3\silk_v3_encoder.exe C:\xampp\htdocs\wxRecordServer\download\silks\\'.$timeDir.'\\'.$fname.'.silk C:\xampp\htdocs\wxRecordServer\download\silks\\'.$timeDir.'\\'.$fname.'.pcm';
//$command='C:\inetpub\wwwroot\silk2mp3\silk_v3_encoder.exe C:\inetpub\wwwroot\download\silks\\'.$timeDir.'\\'.$fname.'.silk C:\inetpub\wwwroot\download\silks\\'.$timeDir.'\\'.$fname.'.pcm';
$pcm=exec($command,$out,$res);
if($pcm=="" && $res==0){
    $command='C:\xampp\htdocs\wxRecordServer\silk2mp3\ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i C:\xampp\htdocs\wxRecordServer\download\silks\\'.$timeDir.'\\'.$fname.'.pcm C:\xampp\htdocs\wxRecordServer\download\mp3s\\'.$timeDir.'\\'.$fname.'.mp3';
//    $command='C:\inetpub\wwwroot\silk2mp3\ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i C:\inetpub\wwwroot\download\silks\\'.$timeDir.'\\'.$fname.'.pcm'.' C:\inetpub\wwwroot\download\mp3s\\'.$timeDir.'\\'.$fname.'.mp3';
    $mp3=exec($command,$out2,$res2);
    if($mp3=="" && $res2==0){
        // 删除转换的pcm文件
//        unlink('C:\inetpub\wwwroot\download\silks\\'.$timeDir.'\\'.$fname.'.pcm');
        unlink('C:\xampp\htdocs\wxRecordServer\download\silks\\'.$timeDir.'\\'.$fname.'.pcm');

        // 保存相关数据到数据库
        $fid=uuid();
        $fpath=$timeDir .'/' .$fname.'.mp3';
        $timestamp=time();
        $sql ="INSERT INTO `recordFiles` VALUES ('$fid', '$usid','$fpath','$duration',$timestamp)";
        $result=mysqli_query($conn,$sql);
        if($result){
            echo json_encode(array(
                'stats'=>1,
                'fid'=>$fid,
                'usid'=>$usid,
                'fpath'=>$fpath,
                'duration'=>$duration,
                'uptime'=>$timestamp
            ));
        }else{
            echo json_encode(array(
                'stats'=>0,
                'msg'=>"保存数据库失败"
            ));
        }
    }else{
        echo json_encode(array(
            'stats'=>0,
            'msg'=>"上传失败"
        ));
        return;
    }
}else{
    echo json_encode(array(
        'stats'=>0,
        'msg'=>"上传失败"
    ));
    return;
}


